#pragma once
#include <vector>
#include <set>
#include <algorithm>



typedef std::vector<CString>	vecCStr;
typedef std::set<CString>		setCStr;



inline bool IsPtValid( const CPoint& pt )
{
	return (pt.x > 0 && pt.y > 0);
}

inline UINT g_split_str( const CString &str, const CString &sepStr, vecCStr &vecStr ) 
{
	int nSep =- 1;
	CString strTemp = str, tmp;
	strTemp.TrimLeft(sepStr);
	strTemp.TrimRight(sepStr);
	while( !strTemp.IsEmpty() && ( nSep = strTemp.Find( sepStr ) ) >  0 )
	{
		tmp = strTemp.Left(  nSep );
		strTemp = strTemp.Mid( nSep );
		tmp.TrimLeft( sepStr);
		tmp.TrimRight(sepStr);
		strTemp.TrimLeft( sepStr);
		strTemp.TrimRight(sepStr);
		if( !tmp.IsEmpty() )
		{
			vecStr.push_back( tmp );
		}
	}
	strTemp.TrimLeft( sepStr);
	strTemp.TrimRight(sepStr);
	if( !strTemp.IsEmpty() )
	{
		vecStr.push_back( strTemp );
	}
	return vecStr.size();
}